æå³è§£æã«ãããåãã§ãã¯ã®éèŠãªåœ¹å²ã解説ã倿§ãªããã°ã©ãã³ã°èšèªã§ã³ãŒãã®ä¿¡é Œæ§ã確ä¿ãããšã©ãŒã鲿¢ããŸãã
æå³è§£æïŒå ç¢ãªã³ãŒãã®ããã®åãã§ãã¯ãè§£ãæãã
æå³è§£æã¯ãåå¥è§£æãšæ§æè§£æã«ç¶ããã³ã³ãã€ã«éçšã«ãããéèŠãªãã§ãŒãºã§ããããã°ã©ã ã®æ§é ãšæå³ãäžè²«ããŠãããããã°ã©ãã³ã°èšèªã®ã«ãŒã«ã«æºæ ããŠããããšãä¿èšŒããŸããæå³è§£æã®æãéèŠãªåŽé¢ã®äžã€ãåãã§ãã¯ã§ãããã®èšäºã§ã¯ãåãã§ãã¯ã®äžçãæ·±ãæãäžãããã®ç®çãããŸããŸãªã¢ãããŒãããããŠãœãããŠã§ã¢éçºã«ããããã®éèŠæ§ãæ¢ããŸãã
åãã§ãã¯ãšã¯ïŒ
åãã§ãã¯ã¯éçããã°ã©ã è§£æã®äžåœ¢åŒã§ããããªãã©ã³ãã®åããããã«å¯ŸããŠäœ¿çšãããæŒç®åãšäºææ§ãããããšãæ€èšŒããŸããç°¡åã«èšãã°ãèšèªã®ã«ãŒã«ã«åŸã£ãŠããŒã¿ãæ£ãã䜿çšãããŠããããšãä¿èšŒãããã®ã§ããäŸãã°ãã»ãšãã©ã®èšèªã§ã¯ãæç€ºçãªå倿ãªãã«æååãšæŽæ°ãçŽæ¥å ç®ããããšã¯ã§ããŸãããåãã§ãã¯ã¯ããã®ãããªçš®é¡ã®ãšã©ãŒããã³ãŒããå®è¡ãããåã®éçºãµã€ã¯ã«ã®æ©ã段éã§æ€åºããããšãç®çãšããŠããŸãã
ããã¯ã³ãŒãã®ææ³ãã§ãã¯ã®ãããªãã®ã ãšèããŠãã ãããææ³ãã§ãã¯ãæç« ã®ææ³çãªæ£ãããä¿èšŒããããã«ãåãã§ãã¯ã¯ã³ãŒããããŒã¿åãæå¹ãã€äžè²«ããæ¹æ³ã§äœ¿çšããŠããããšãä¿èšŒããŸãã
ãªãåãã§ãã¯ã¯éèŠãªã®ãïŒ
åãã§ãã¯ã¯ãããã€ãã®éèŠãªå©ç¹ãæäŸããŸãïŒ
- ãšã©ãŒã®æ€åºïŒ åé¢é£ã®ãšã©ãŒãæ©æã«ç¹å®ããå®è¡æã®äºæãã¬åäœãã¯ã©ãã·ã¥ãé²ããŸããããã«ããããããã°æéãççž®ãããã³ãŒãã®ä¿¡é Œæ§ãåäžããŸãã
- ã³ãŒãã®æé©åïŒ åæ å ±ã¯ãã³ã³ãã€ã©ãçæãããã³ãŒããæé©åããããšãå¯èœã«ããŸããäŸãã°ã倿°ã®ããŒã¿åãç¥ãããšã§ãã³ã³ãã€ã©ã¯ãã®å€æ°ã«å¯Ÿããæäœãå®è¡ããããã®æãå¹ççãªãã·ã³åœä»€ãéžæã§ããŸãã
- ã³ãŒãã®å¯èªæ§ãšä¿å®æ§ïŒ æç€ºçãªå宣èšã¯ãã³ãŒãã®å¯èªæ§ãåäžããã倿°ã颿°ã®æå³ãããç®çãçè§£ããããããŸããããã«ãããä¿å®æ§ãåäžããã³ãŒãä¿®æ£æã«ãšã©ãŒãæ··å ¥ããããªã¹ã¯ãæžå°ããŸãã
- ã»ãã¥ãªãã£ïŒ åãã§ãã¯ã¯ãããŒã¿ãæå³ãããç¯å²å ã§äœ¿çšãããããšãä¿èšŒããããšã«ããããããã¡ãªãŒããŒãããŒãªã©ã®ç¹å®ã®çš®é¡ã®ã»ãã¥ãªãã£è匱æ§ãé²ãã®ã«åœ¹ç«ã¡ãŸãã
åãã§ãã¯ã®çš®é¡
åãã§ãã¯ã¯ã倧ããåããŠ2ã€ã®äž»èŠãªã¿ã€ãã«åé¡ã§ããŸãïŒ
éçåãã§ãã¯
éçåãã§ãã¯ã¯ã³ã³ãã€ã«æã«å®è¡ãããŸããã€ãŸãã倿°ãåŒã®åã¯ããã°ã©ã ãå®è¡ãããåã«æ±ºå®ãããŸããããã«ãããåãšã©ãŒãæ©æã«æ€åºããå®è¡æã«çºçããã®ãé²ãããšãã§ããŸããJavaãC++ãC#ãHaskellã®ãããªèšèªã¯éçåä»ãèšèªã§ãã
éçåãã§ãã¯ã®å©ç¹ïŒ
- æ©æã®ãšã©ãŒæ€åºïŒ å®è¡åã«åãšã©ãŒãææããããä¿¡é Œæ§ã®é«ãã³ãŒãã«ã€ãªãããŸãã
- ããã©ãŒãã³ã¹ïŒ åæ å ±ã«åºã¥ããã³ã³ãã€ã«æã®æé©åãå¯èœã§ãã
- ã³ãŒãã®æç¢ºãïŒ æç€ºçãªå宣èšãã³ãŒãã®å¯èªæ§ãåäžãããŸãã
éçåãã§ãã¯ã®æ¬ ç¹ïŒ
- ãã峿 Œãªã«ãŒã«ïŒ ããå¶éãå³ãããããå€ãã®æç€ºçãªå宣èšãå¿ èŠã«ãªãå ŽåããããŸãã
- éçºæéïŒ æç€ºçãªåã¢ãããŒã·ã§ã³ãå¿ èŠãªãããéçºæéãå¢å ããå¯èœæ§ããããŸãã
äŸ (Java)ïŒ
int x = 10;
String y = "Hello";
// x = y; // ããã¯ã³ã³ãã€ã«æãšã©ãŒãåŒãèµ·ãããŸã
ãã®Javaã®äŸã§ã¯ãã³ã³ãã€ã©ã¯ã³ã³ãã€ã«æã«ãæåå`y`ãæŽæ°å€æ°`x`ã«ä»£å ¥ããããšãã詊ã¿ãåãšã©ãŒãšããŠãã©ã°ãç«ãŠãŸãã
åçåãã§ãã¯
åçåãã§ãã¯ã¯å®è¡æã«å®è¡ãããŸããã€ãŸãã倿°ãåŒã®åã¯ããã°ã©ã ã®å®è¡äžã«æ±ºå®ãããŸããããã«ãããã³ãŒãã®æè»æ§ãé«ãŸããŸãããåãšã©ãŒãå®è¡æãŸã§æ€åºãããªãå¯èœæ§ããããŸããPythonãJavaScriptãRubyãPHPã®ãããªèšèªã¯åçåä»ãèšèªã§ãã
åçåãã§ãã¯ã®å©ç¹ïŒ
- æè»æ§ïŒ ããæè»ãªã³ãŒããšè¿ éãªãããã¿ã€ãã³ã°ãå¯èœã§ãã
- å®åã³ãŒãã®åæžïŒ æç€ºçãªå宣èšãå°ãªããŠæžããããã³ãŒãã®åé·æ§ãæžå°ããŸãã
åçåãã§ãã¯ã®æ¬ ç¹ïŒ
- å®è¡æãšã©ãŒïŒ åãšã©ãŒãå®è¡æãŸã§æ€åºãããªãå¯èœæ§ããããäºæãã¬ã¯ã©ãã·ã¥ã«ã€ãªããå¯èœæ§ããããŸãã
- ããã©ãŒãã³ã¹ïŒ å®è¡äžã®åãã§ãã¯ãå¿ èŠãªãããå®è¡æãªãŒããŒããããçºçããå¯èœæ§ããããŸãã
äŸ (Python)ïŒ
x = 10
y = "Hello"
# x = y # ããã¯å®è¡æã«ã®ã¿ã©ã³ã¿ã€ã ãšã©ãŒãåŒãèµ·ãããŸã
print(x + 5)
ãã®Pythonã®äŸã§ã¯ã`y`ã`x`ã«ä»£å ¥ããŠãããã«ã¯ãšã©ãŒã¯çºçããŸããããããããã®åŸã§`x`ããŸã æŽæ°ã§ãããã®ããã«ç®è¡æŒç®ã詊ã¿ããšïŒäŸãã°ãä»£å ¥åŸã«`print(x + 5)`ãå®è¡ãããªã©ïŒãå®è¡æãšã©ãŒã«ééããŸãã
åã·ã¹ãã
åã·ã¹ãã ãšã¯ã倿°ãåŒã颿°ãªã©ã®ããã°ã©ãã³ã°èšèªã®æ§æèŠçŽ ã«åãå²ãåœãŠãäžé£ã®ã«ãŒã«ã§ããåãã©ã®ããã«çµã¿åããããæäœãããããå®çŸ©ããåãã§ãã«ãŒãããã°ã©ã ãåå®å šã§ããããšãä¿èšŒããããã«äœ¿çšãããŸãã
åã·ã¹ãã ã¯ã以äžãå«ãããã€ãã®æ¬¡å ã§åé¡ã§ããŸãïŒ
- 匷ãåä»ã vs. 匱ãåä»ãïŒ åŒ·ãåä»ããšã¯ãèšèªãåã«ãŒã«ã峿 Œã«é©çšãããšã©ãŒã«ã€ãªããå¯èœæ§ã®ããæé»çãªå倿ãé²ãããšãæå³ããŸãã匱ãåä»ãã¯ãããå€ãã®æé»çãªå€æã蚱容ããŸãããã³ãŒãããšã©ãŒãèµ·ããããããªãå¯èœæ§ããããŸããJavaãPythonã¯äžè¬çã«åŒ·ãåä»ããšèŠãªãããCãJavaScriptã¯åŒ±ãåä»ããšèŠãªãããŸãã ããããã匷ããã匱ãããšããçšèªã¯ãã°ãã°äžæ£ç¢ºã«äœ¿çšããããããéåžžã¯åã·ã¹ãã ã«ã€ããŠãã埮åŠãªçè§£ãæãŸããã§ãã
- éçåä»ã vs. åçåä»ãïŒ åè¿°ã®éããéçåä»ãã¯ã³ã³ãã€ã«æã«åãã§ãã¯ãè¡ããåçåä»ãã¯å®è¡æã«è¡ããŸãã
- æç€ºçåä»ã vs. æé»çåä»ãïŒ æç€ºçåä»ãã¯ãããã°ã©ããŒã倿°ã颿°ã®åãæç€ºçã«å®£èšããããšãèŠæ±ããŸããæé»çåä»ãã¯ãã³ã³ãã€ã©ãã€ã³ã¿ããªã¿ãããããã䜿çšãããã³ã³ããã¹ãã«åºã¥ããŠåãæšè«ããããšãå¯èœã«ããŸããJavaïŒè¿å¹Žã®ããŒãžã§ã³ã§ã¯`var`ããŒã¯ãŒãããïŒãC++ã¯æç€ºçåä»ãã®èšèªã®äŸã§ããïŒããçšåºŠã®åæšè«ããµããŒãããŠããŸãïŒãHaskellã¯åŒ·åãªåæšè«ãæã€èšèªã®ä»£è¡šäŸã§ãã
- ãããã«åä»ã vs. ã¹ãã©ã¯ãã¥ã©ã«åä»ãïŒ ãããã«åä»ãã¯ãåããã®ååã«åºã¥ããŠæ¯èŒããŸãïŒäŸïŒåãååã®2ã€ã®ã¯ã©ã¹ã¯åãåãšèŠãªãããŸãïŒãã¹ãã©ã¯ãã¥ã©ã«åä»ãã¯ãåããã®æ§é ã«åºã¥ããŠæ¯èŒããŸãïŒäŸïŒåããã£ãŒã«ããšã¡ãœãããæã€2ã€ã®ã¯ã©ã¹ã¯ãååã«é¢ä¿ãªãåãåãšèŠãªãããŸãïŒãJavaã¯ãããã«åä»ãã䜿çšããGoã¯ã¹ãã©ã¯ãã¥ã©ã«åä»ãã䜿çšããŸãã
äžè¬çãªåãã§ãã¯ãšã©ãŒ
ããã°ã©ããŒãééããå¯èœæ§ã®ãããäžè¬çãªåãã§ãã¯ãšã©ãŒãããã€ã玹ä»ããŸãïŒ
- åã®äžäžèŽïŒ äºææ§ã®ãªãåã®ãªãã©ã³ãã«æŒç®åãé©çšãããå Žåã«çºçããŸããäŸãã°ãæååã«æŽæ°ãå ããããšããå Žåã§ãã
- æªå®£èšã®å€æ°ïŒ 倿°ã宣èšãããã«äœ¿çšããããããã®åãäžæãªå Žåã«çºçããŸãã
- 颿°ã®åŒæ°ã®äžäžèŽïŒ 颿°ã誀ã£ãåã®åŒæ°ã誀ã£ãæ°ã®åŒæ°ã§åŒã³åºãããå Žåã«çºçããŸãã
- æ»ãå€ã®åã®äžäžèŽïŒ 颿°ã宣èšãããæ»ãå€ã®åãšã¯ç°ãªãåã®å€ãè¿ãå Žåã«çºçããŸãã
- ãã«ãã€ã³ã¿ã®ããªãã¡ã¬ã³ã¹ïŒ ãã«ãã€ã³ã¿ã®ã¡ã³ãã«ã¢ã¯ã»ã¹ããããšããå Žåã«çºçããŸããïŒéçåã·ã¹ãã ãæã€äžéšã®èšèªã§ã¯ããã®ãããªãšã©ãŒãã³ã³ãã€ã«æã«é²ãããšããŸããïŒ
ããŸããŸãªèšèªã§ã®äŸ
ããã€ãã®ç°ãªãããã°ã©ãã³ã°èšèªã§åãã§ãã¯ãã©ã®ããã«æ©èœããããèŠãŠã¿ãŸãããïŒ
JavaïŒéçã匷ãããããã«ïŒ
Javaã¯éçåä»ãèšèªã§ãããåãã§ãã¯ã¯ã³ã³ãã€ã«æã«è¡ãããŸãããŸããåã«ãŒã«ã峿 Œã«é©çšãã匷ãåä»ãèšèªã§ããããŸããJavaã¯ãåããã®ååã«åºã¥ããŠæ¯èŒãããããã«åä»ãã䜿çšããŸãã
public class TypeExample {
public static void main(String[] args) {
int x = 10;
String y = "Hello";
// x = y; // ã³ã³ãã€ã«æãšã©ãŒïŒäºææ§ã®ãªãå: Stringãintã«å€æã§ããŸãã
System.out.println(x + 5);
}
}
PythonïŒåçã匷ããã»ãŒã¹ãã©ã¯ãã¥ã©ã«ïŒ
Pythonã¯åçåä»ãèšèªã§ãããåãã§ãã¯ã¯å®è¡æã«è¡ãããŸããäžè¬çã«åŒ·ãåä»ãèšèªãšèŠãªãããŠããŸãããããã€ãã®æé»çãªå€æã蚱容ããŸããPythonã¯ã¹ãã©ã¯ãã¥ã©ã«åä»ãã«åŸããŠããŸãããçŽç²ã«ã¹ãã©ã¯ãã¥ã©ã«ã§ã¯ãããŸããã ããã¯ã¿ã€ãã³ã°ã¯ããã°ãã°Pythonã«é¢é£ä»ããããé¢é£æŠå¿µã§ãã
x = 10
y = "Hello"
# x = y # ãã®æç¹ã§ã¯ãšã©ãŒãªã
# print(x + 5) # yãxã«ä»£å
¥ããåã¯åé¡ãããŸãã
#print(x + 5) #TypeError: '+'ã®ãªãã©ã³ãå('str'ãš'int')ã¯ãµããŒããããŠããŸãã
JavaScriptïŒåçã匱ãããããã«ïŒ
JavaScriptã¯ã匱ãåä»ããæã€åçåä»ãèšèªã§ããå倿ã¯JavaScriptã§ã¯æé»çãã€ç©æ¥µçã«è¡ãããŸããJavaScriptã¯ãããã«åä»ãã䜿çšããŸãã
let x = 10;
let y = "Hello";
x = y;
console.log(x + 5); // JavaScriptã5ãæååã«å€æããããã"Hello5"ãšåºåãããŸãã
GoïŒéçã匷ããã¹ãã©ã¯ãã¥ã©ã«ïŒ
Goã¯éçåä»ãèšèªã§ããã匷ãåä»ããæã£ãŠããŸããã¹ãã©ã¯ãã¥ã©ã«åä»ãã䜿çšããŠãããããã¯åãååã«é¢ä¿ãªãåããã£ãŒã«ããšã¡ãœãããæã£ãŠããã°åçãšèŠãªãããããšãæå³ããŸããããã«ãããGoã®ã³ãŒãã¯éåžžã«æè»ã«ãªããŸãã
package main
import "fmt"
// ãã£ãŒã«ããæã€åãå®çŸ©
type Person struct {
Name string
}
// åããã£ãŒã«ããæã€å¥ã®åãå®çŸ©
type User struct {
Name string
}
func main() {
person := Person{Name: "Alice"}
user := User{Name: "Bob"}
// æ§é ãåãã§ãããããPersonãUseråã«å€æããŸã
user = User(person)
fmt.Println(user.Name)
}
åæšè«
åæšè«ãšã¯ãã³ã³ãã€ã©ãã€ã³ã¿ããªã¿ããåŒã®ã³ã³ããã¹ãã«åºã¥ããŠãã®åãèªåçã«æšè«ããèœåã®ããšã§ããããã«ãããæç€ºçãªå宣èšã®å¿ èŠæ§ãæžããã³ãŒããããç°¡æœã§èªã¿ããããªããŸããå€ãã®çŸä»£çãªèšèªãJavaïŒ`var`ããŒã¯ãŒãïŒãC++ïŒ`auto`ïŒãHaskellãScalaãªã©ããåæšè«ãããŸããŸãªåºŠåãã§ãµããŒãããŠããŸãã
äŸïŒJavaã®`var`ã䜿çšïŒïŒ
var message = "Hello, World!"; // ã³ã³ãã€ã©ã¯messageãStringåã§ãããšæšè«ããŸã
var number = 42; // ã³ã³ãã€ã©ã¯numberãintåã§ãããšæšè«ããŸã
é«åºŠãªåã·ã¹ãã
äžéšã®ããã°ã©ãã³ã°èšèªã¯ãããã«é«ãå®å šæ§ãšè¡šçŸåãæäŸããããã«ãããé«åºŠãªåã·ã¹ãã ãæ¡çšããŠããŸãããããã«ã¯ä»¥äžã®ãããªãã®ããããŸãïŒ
- äŸååïŒ å€ã«äŸåããåã§ããããã«ããã颿°ãæäœã§ããããŒã¿ã«å¯ŸããŠéåžžã«æ£ç¢ºãªå¶çŽã衚çŸã§ããŸãã
- ãžã§ããªã¯ã¹ïŒ ååããšã«æžãçŽãããšãªããè€æ°ã®åã§åäœããã³ãŒããæžãããšãå¯èœã«ããŸããïŒäŸïŒJavaã®`List
`ïŒã - 代æ°çããŒã¿åïŒ çŽååãçŽç©åãªã©ãä»ã®ããŒã¿åãæ§é çãªæ¹æ³ã§çµã¿åãããŠããŒã¿åãå®çŸ©ããããšãå¯èœã«ããŸãã
åãã§ãã¯ã®ãã¹ããã©ã¯ãã£ã¹
ã³ãŒããåå®å šã§ä¿¡é Œæ§ãé«ãããšãä¿èšŒããããã«ãåŸãã¹ããã¹ããã©ã¯ãã£ã¹ãããã€ã玹ä»ããŸãïŒ
- é©åãªèšèªãéžæããïŒ åœé¢ã®ã¿ã¹ã¯ã«é©ããåã·ã¹ãã ãæã€ããã°ã©ãã³ã°èšèªãéžæããŸããä¿¡é Œæ§ãæãéèŠèŠãããã¯ãªãã£ã«ã«ãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãéçåä»ãèšèªã奜ãŸããå ŽåããããŸãã
- æç€ºçãªå宣èšã䜿çšããïŒ åæšè«ãæã€èšèªã§ãã£ãŠããã³ãŒãã®å¯èªæ§ãåäžãããäºæãã¬åäœãé²ãããã«ãæç€ºçãªå宣èšã®äœ¿çšãæ€èšããŸãã
- åäœãã¹ããäœæããïŒ ããŸããŸãªçš®é¡ã®ããŒã¿ã§ã³ãŒããæ£ããåäœããããšã確èªããããã«ãåäœãã¹ããäœæããŸãã
- éçè§£æããŒã«ã䜿çšããïŒ éçè§£æããŒã«ã䜿çšããŠãæœåšçãªåãšã©ãŒããã®ä»ã®ã³ãŒãå質ã®åé¡ãæ€åºããŸãã
- åã·ã¹ãã ãçè§£ããïŒ äœ¿çšããŠããããã°ã©ãã³ã°èšèªã®åã·ã¹ãã ãçè§£ããããã«æéãæè³ããŸãã
çµè«
åãã§ãã¯ã¯æå³è§£æã®äžå¯æ¬ ãªåŽé¢ã§ãããã³ãŒãã®ä¿¡é Œæ§ã®ç¢ºä¿ããšã©ãŒã®é²æ¢ãããã©ãŒãã³ã¹ã®æé©åã«ãããŠéèŠãªåœ¹å²ãæãããŸããããŸããŸãªçš®é¡ã®åãã§ãã¯ãåã·ã¹ãã ããã¹ããã©ã¯ãã£ã¹ãçè§£ããããšã¯ããã¹ãŠã®ãœãããŠã§ã¢éçºè ã«ãšã£ãŠäžå¯æ¬ ã§ããéçºã¯ãŒã¯ãããŒã«åãã§ãã¯ãçµã¿èŸŒãããšã§ãããå ç¢ã§ãä¿å®æ§ãé«ããå®å šãªã³ãŒããæžãããšãã§ããŸããJavaã®ãããªéçåä»ãèšèªã§äœæ¥ããŠããå Žåã§ããPythonã®ãããªåçåä»ãèšèªã§äœæ¥ããŠããå Žåã§ããåãã§ãã¯ã®ååããã£ãããšçè§£ããããšã§ãããã°ã©ãã³ã°ã¹ãã«ãšãœãããŠã§ã¢ã®å質ãå€§å¹ ã«åäžããŸãã